package svpo;


import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author RODRIGO
 */
public class Valida implements Serializable{
    
    
    /** <b> Método set para validar cnpj da empresa.
     * @param cnpj CNPJ da Empresa
     */
    
    

    public boolean ValidaCnpj(String cnpj) throws NumberFormatException{
        int soma=0;
        String cnpjin = cnpj;
        int verificador1;
        int verificador2;
        int numero, numero1, aux;
        char n;
        String s;
        
        if (cnpjin.length() != 14){
            return false;
        }
        for (int i = 0; i < 12; i++) {

            n = cnpjin.charAt(i);
            s = String.valueOf(n);
            numero = Integer.parseInt(s);
            if (i <= 3) {
                aux = 5 - i;
            } else {
                aux = 13 - i;
            }

            soma += aux * numero;
        }//for end

        if (soma % 11 < 2) {
            verificador1=0;
        } else {
            verificador1 = (11 - (soma % 11));
        }

        soma = 0;

        for (int i = 0; i < 13; i++) {

            n = cnpjin.charAt(i);
            s = String.valueOf(n);
            numero = Integer.parseInt(s);

            if (i <= 4) {
                aux = 6 - i;
            } else {
                aux = 14 - i;
            }
            soma += aux * numero;

        }//for end

        if (soma % 11 < 2) {
            verificador2 = 0;
        } else {
            verificador2 = (11 - (soma % 11));
        }

        n = cnpjin.charAt(12);
        s = String.valueOf(n);
        numero = Integer.parseInt(s);

        n = cnpjin.charAt(13);
        s = String.valueOf(n);
        numero1 = Integer.parseInt(s);

        if (verificador1 == numero && verificador2 == numero1) {
            return true;
        } else {
            return false;
        }
    }//validaCpf end
    
    /**
     * Objetivo: validar nome informado
     * Retorno:     0 - Nome Inv�lido
     *              1 - Nome V�lido
     *
     * @param nomeAux
     * @return retorno
     *
     * //Fun��o compile, da classe Pattern, cria um padr�o para a vari�vel padrao
     * //Matcher verifica a exist�ncia de um certo padr�o no par�metro passado
     */
    public int validaNome(String nomein) {

        try {
            Pattern padrao = Pattern.compile("[A-Za-z].[A-Za-z��������� ]+");
            Matcher pesquisa = padrao.matcher(nomein);


            if (pesquisa.matches()) {
                return 1;
            } else {
                return 0;
            }
        } catch (NullPointerException e) {
            return 0;
        }



    }
    
    /**
     * Objetivo: Validar endere�o informado
     * @param nomeAux
     * @return  0 - Endere�o Inv�lido
     * 			1 - Endere�o V�lido
     */
    public int validaEndereco(String Enderecoin) {

        try {
            Pattern padrao = Pattern.compile("[A-Za-z0-9].[A-Za-z0-9.��������� ]+");
            Matcher pesquisa = padrao.matcher(Enderecoin);

            if (pesquisa.matches()) {
                return 1;
            } else {
                System.out.println("\nEndere�o incorreto, informe novamente!\n");
                return 0;
            }
        } catch (NullPointerException e) {
            System.out.println("\nEndere�o incorreto, informe novamente!\n");
            return 0;
        }
    }
}
